package com.deer.wms.instock.service;


import com.deer.wms.ASN.manage.model.asn.AsnMaster;
import com.deer.wms.intercept.common.data.CurrentUser;
import com.deer.wms.inventory.model.Inventory.Inventory;
import com.deer.wms.ware.task.model.SO.SoDetail;
import com.deer.wms.ware.task.model.pickTask.CreatePickTask;

import java.util.List;

/**
  vmi 直发虚仓出入库
 */
public interface WaveService {



;

//    List<String> findCode(List<String> waveDetailIds,Integer asnStockId);

    void accomplish(AsnMaster asnMaster, String cellCode, CurrentUser currentUser, Double qty, String batchName);

    void virtual(Long id, CurrentUser currentUser,Double vmiNumber);

    /**
     * 直发虚仓出库
     * @param soDetail
     * @param currentUser
     */
    void virtualSoDetail(SoDetail soDetail,CurrentUser currentUser);


    /**
     * VMI入库
     * @param list
     * @param currentUser
     */
    void inventoryVmi(List<Inventory>  list, CurrentUser currentUser);


    /**
     * 先发配件
     * @param ids
     * @param currentUser
     * @param qty
     */
    void start(Long ids, CurrentUser currentUser, Double qty);


    /**
     * 任务单直发虚仓
     * @param createPickTask
     * @param currentUser
     */
    void manualCreatePickTask(CreatePickTask createPickTask, CurrentUser currentUser);


    /**
     * 先发配件出库
     * @param createPickTask
     * @param currentUser
     */
    void commitStart(CreatePickTask createPickTask, CurrentUser currentUser);



}
